<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Auto-DSL 使用说明</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css" rel="stylesheet">
    <link href="style.css" rel="stylesheet">
</head>
<body>
    <div class="container py-5">
        <div class="row">
            <div class="col-lg-8 mx-auto">
                <div class="text-center mb-5">
                    <h1 class="display-4">
                        <i class="bi bi-book"></i> Auto-DSL 使用说明
                    </h1>
                    <p class="lead">通用DSL生成系统使用指南</p>
                    <a href="/" class="btn btn-primary">
                        <i class="bi bi-arrow-left"></i> 返回测试页面
                    </a>
                </div>

                <!-- 功能介绍 -->
                <div class="card mb-4">
                    <div class="card-header">
                        <h3><i class="bi bi-info-circle"></i> 功能介绍</h3>
                    </div>
                    <div class="card-body">
                        <p>Auto-DSL是一个基于大模型的通用DSL（领域特定语言）生成系统，支持：</p>
                        <ul>
                            <li><strong>通用DSL生成</strong>：支持JSON、SQL、YAML、XML等多种格式</li>
                            <li><strong>业务规则DSL</strong>：专门针对业务规则的智能解析和生成</li>
                            <li><strong>批量处理</strong>：支持批量业务规则解析，提高工作效率</li>
                            <li><strong>多模型支持</strong>：支持OpenAI、Claude、本地模型等</li>
                            <li><strong>验证机制</strong>：内置DSL语法和语义验证</li>
                        </ul>
                    </div>
                </div>

                <!-- 通用DSL生成 -->
                <div class="card mb-4">
                    <div class="card-header">
                        <h3><i class="bi bi-gear"></i> 通用DSL生成</h3>
                    </div>
                    <div class="card-body">
                        <h5>使用步骤：</h5>
                        <ol>
                            <li><strong>填写需求描述</strong>：详细描述你需要生成的DSL内容</li>
                            <li><strong>选择DSL类型</strong>：JSON、SQL、YAML、XML等</li>
                            <li><strong>选择模型</strong>：可选择特定的AI模型，或使用默认模型</li>
                            <li><strong>添加示例</strong>：提供参考示例，提高生成质量</li>
                            <li><strong>设置上下文</strong>：JSON格式的上下文信息</li>
                            <li><strong>调整参数</strong>：最大Token数、温度参数等</li>
                            <li><strong>生成DSL</strong>：点击生成按钮，等待结果</li>
                        </ol>

                        <h5 class="mt-4">示例：</h5>
                        <div class="bg-light p-3 rounded">
                            <strong>需求描述：</strong>创建一个用户信息的JSON结构，包含姓名、年龄、邮箱和地址<br>
                            <strong>DSL类型：</strong>JSON<br>
                            <strong>生成结果：</strong>
                            <pre class="mt-2">{
  "name": "string",
  "age": "number",
  "email": "string",
  "address": {
    "street": "string",
    "city": "string",
    "zipCode": "string"
  }
}</pre>
                        </div>
                    </div>
                </div>

                <!-- 业务规则DSL -->
                <div class="card mb-4">
                    <div class="card-header">
                        <h3><i class="bi bi-list-check"></i> 业务规则DSL</h3>
                    </div>
                    <div class="card-body">
                        <h5>使用步骤：</h5>
                        <ol>
                            <li><strong>填写规则名称</strong>：如"作业申请单位校验_必填"</li>
                            <li><strong>填写关联字段</strong>：规则对应的字段名称</li>
                            <li><strong>填写规则描述</strong>：详细的业务规则描述</li>
                            <li><strong>选择示例</strong>：可以快速加载预设的示例规则</li>
                            <li><strong>解析规则</strong>：点击解析按钮，生成标准化的规则DSL</li>
                        </ol>

                        <h5 class="mt-4">支持的操作符：</h5>
                        <div class="row">
                            <div class="col-md-6">
                                <ul>
                                    <li><code>not_empty</code> - 非空校验</li>
                                    <li><code>empty</code> - 空值校验</li>
                                    <li><code>equals</code> - 等于</li>
                                    <li><code>not_equals</code> - 不等于</li>
                                    <li><code>contains</code> - 包含</li>
                                    <li><code>not_contains</code> - 不包含</li>
                                </ul>
                            </div>
                            <div class="col-md-6">
                                <ul>
                                    <li><code>in</code> - 在列表中</li>
                                    <li><code>not_in</code> - 不在列表中</li>
                                    <li><code>greater_than</code> - 大于</li>
                                    <li><code>less_than</code> - 小于</li>
                                    <li><code>regex</code> - 正则匹配</li>
                                    <li><code>custom</code> - 自定义校验</li>
                                </ul>
                            </div>
                        </div>

                        <h5 class="mt-4">示例：</h5>
                        <div class="bg-light p-3 rounded">
                            <strong>规则名称：</strong>作业申请单位校验_必填<br>
                            <strong>关联字段：</strong>作业申请单位<br>
                            <strong>规则描述：</strong>为空提示：{"des": "作业申请单位未填写。", "result": "错误"}<br>
                            <strong>生成结果：</strong>
                            <pre class="mt-2">{
  "id": "rule-001",
  "name": "作业申请单位校验_必填",
  "conditions": [
    {
      "field": "作业申请单位",
      "operator": "not_empty"
    }
  ],
  "action": {
    "type": "错误",
    "message": "作业申请单位未填写。"
  },
  "priority": 1,
  "enabled": true
}</pre>
                        </div>
                    </div>
                </div>

                <!-- 批量处理 -->
                <div class="card mb-4">
                    <div class="card-header">
                        <h3><i class="bi bi-stack"></i> 批量规则解析</h3>
                    </div>
                    <div class="card-body">
                        <h5>使用步骤：</h5>
                        <ol>
                            <li><strong>准备数据</strong>：按照JSON格式准备批量规则数据</li>
                            <li><strong>加载示例</strong>：可以点击"加载示例数据"查看格式</li>
                            <li><strong>粘贴数据</strong>：将规则数据粘贴到文本框中</li>
                            <li><strong>批量解析</strong>：点击批量解析按钮</li>
                            <li><strong>查看结果</strong>：查看处理统计和详细结果</li>
                        </ol>

                        <h5 class="mt-4">数据格式：</h5>
                        <pre class="bg-light p-3 rounded">{
  "rules": [
    {
      "ruleName": "规则名称",
      "relatedField": "关联字段",
      "ruleDescription": "规则描述"
    }
  ]
}</pre>

                        <div class="alert alert-info mt-3">
                            <i class="bi bi-info-circle"></i>
                            <strong>提示：</strong>批量处理支持同时处理多个规则，系统会自动统计成功率和失败原因。
                        </div>
                    </div>
                </div>

                <!-- 注意事项 -->
                <div class="card mb-4">
                    <div class="card-header">
                        <h3><i class="bi bi-exclamation-triangle"></i> 注意事项</h3>
                    </div>
                    <div class="card-body">
                        <div class="alert alert-warning">
                            <h6><i class="bi bi-gear"></i> 配置要求</h6>
                            <ul class="mb-0">
                                <li>确保已正确配置API密钥（OpenAI、Claude等）</li>
                                <li>检查网络连接，确保能访问AI模型服务</li>
                                <li>本地模型需要确保服务正常运行</li>
                            </ul>
                        </div>

                        <div class="alert alert-info">
                            <h6><i class="bi bi-lightbulb"></i> 使用建议</h6>
                            <ul class="mb-0">
                                <li>提供详细的需求描述，有助于提高生成质量</li>
                                <li>使用示例数据可以让AI更好地理解需求</li>
                                <li>对于复杂规则，建议分步骤描述</li>
                                <li>生成的DSL建议进行人工审核</li>
                            </ul>
                        </div>

                        <div class="alert alert-success">
                            <h6><i class="bi bi-check-circle"></i> 最佳实践</h6>
                            <ul class="mb-0">
                                <li>规则描述使用结构化的格式</li>
                                <li>批量处理时，建议先测试少量数据</li>
                                <li>保存生成的DSL结果，便于后续使用</li>
                                <li>定期检查和更新业务规则</li>
                            </ul>
                        </div>
                    </div>
                </div>

                <!-- API文档 -->
                <div class="card mb-4">
                    <div class="card-header">
                        <h3><i class="bi bi-code-square"></i> API接口</h3>
                    </div>
                    <div class="card-body">
                        <h5>主要接口：</h5>
                        <ul>
                            <li><code>POST /api/dsl/generate</code> - 通用DSL生成</li>
                            <li><code>POST /api/business-rule/parse</code> - 单个业务规则解析</li>
                            <li><code>POST /api/business-rule/parse-batch</code> - 批量业务规则解析</li>
                            <li><code>GET /api/dsl/health</code> - 系统健康检查</li>
                            <li><code>GET /api/dsl/models</code> - 获取可用模型</li>
                            <li><code>GET /api/dsl/types</code> - 获取支持的DSL类型</li>
                        </ul>

                        <p class="mt-3">
                            <a href="/examples/api-examples.md" class="btn btn-outline-primary" target="_blank">
                                <i class="bi bi-file-text"></i> 查看API示例
                            </a>
                        </p>
                    </div>
                </div>

                <div class="text-center">
                    <a href="/" class="btn btn-primary btn-lg">
                        <i class="bi bi-arrow-left"></i> 返回测试页面
                    </a>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
